using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("CollectibleCardClassFilter")]
	public class CollectibleCardClassFilter : CollectibleCardFilter
	{
		public int m_cardsPerPage => method_2<int>("m_cardsPerPage");

		public List<TAG_CLASS> m_classTabOrder => method_3<Class250<TAG_CLASS>>("m_classTabOrder")?.method_25();

		public CollectionManager.FindCardsResult FindCardsResult => method_14<CollectionManager.FindCardsResult>("get_FindCardsResult", Array.Empty<object>());

		public CollectibleCardClassFilter(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CollectibleCardClassFilter(IntPtr address)
			: this(address, "CollectibleCardClassFilter")
		{
		}

		public void UpdateResults()
		{
			method_8("UpdateResults");
		}

		public int GetNumPagesForClass(TAG_CLASS cardClass)
		{
			return method_11<int>("GetNumPagesForClass", new object[1] { cardClass });
		}

		public int GetNumNewCardsForClass(TAG_CLASS cardClass)
		{
			return method_11<int>("GetNumNewCardsForClass", new object[1] { cardClass });
		}

		public int GetTotalNumPages()
		{
			return method_11<int>("GetTotalNumPages", Array.Empty<object>());
		}

		public List<CollectibleCard> GetPageContents(int page)
		{
			return method_14<Class271<CollectibleCard>>("GetPageContents", new object[1] { page })?.method_25();
		}
	}
}
